package transport

import "time"

// Transport 传输层接口
type Transport interface {
	// Connect 连接到远程地址
	Connect(address string) error
	
	// Send 发送数据
	Send(data []byte) error
	
	// Receive 接收数据
	Receive() ([]byte, error)
	
	// Close 关闭连接
	Close() error
	
	// IsConnected 检查连接状态
	IsConnected() bool
	
	// GetLocalAddress 获取本地地址
	GetLocalAddress() string
	
	// GetRemoteAddress 获取远程地址
	GetRemoteAddress() string
	
	// SetTimeout 设置超时时间
	SetTimeout(timeout time.Duration)
}

// Config 传输配置
type Config struct {
	// Timeout 超时时间
	Timeout time.Duration
	
	// BufferSize 缓冲区大小
	BufferSize int
	
	// RetryCount 重试次数
	RetryCount int
	
	// RetryInterval 重试间隔
	RetryInterval time.Duration
}